<template>
  <div id="app">
    <h2>测试题</h2>
    <SubjectItem
      v-for="(item, index) in list"
      :key="index"
      :item="item"
      @submit="cal($event, index)"
    ></SubjectItem>
    <div>
      <FlagItem
        v-for="(item, index) in list"
        :key="index"
        :index="index"
        :item="item"
      ></FlagItem>
    </div>
  </div>
</template>

<script>
//数组通过索引改变数据不是响应式的 这个后面会讲一下
// 数据结构设计对象是没有任何问题 二维数组
import FlagItem from "./components/FlagItem.vue";
import SubjectItem from "./components/SubjectItem.vue";
export default {
  created() {
    // 生成五道题
    for (let i = 0; i < 5; i++) {
      this.list.push([this.random(), this.random(), null]);
    }
  },
  data() {
    return {
      list: [],
    };
  },
  components: {
    FlagItem,
    SubjectItem,
  },
  methods: {
    random() {
      return Math.ceil(Math.random() * 10);
    },
    cal(sum, index) {
      // 二维数组
      const item = this.list[index];
      item[2] = sum;
      // 强制让vue知道这个数据是变化了
      this.list.splice(index, 1, Array.from(item));
      console.log(this.list);
    },
  },
};
</script>

<style>
body {
  background-color: #eee;
}

#app {
  background-color: #fff;
  width: 500px;
  margin: 50px auto;
  box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.5);
  padding: 2em;
}
</style>

